Para fazermos escolhas da linguagem de programação C#, utilizamos o comando switch que
possui sua sintaxe apresentada abaixo. O comando switch utiliza o comando break
como parte de sua sintaxe.
Fig. 1: Comando switch
 |
Sintaxe
switch(condicao)
{
case caso1:
//seu codigo aqui
break;
case caso2:
//seu codigo aqui
break;
default:
//seu codigo aqui
break;
}
Onde
condicao: valor numérico, string, char, retorno de método ou expressão
O caso default é opcional. Com esse caso, podemos executar algum trecho de código caso
o valor não seja igual a algum dos valores da cláusula case. Por boa prática é bom mantê-lo
para identificação de erros.
Exemplo 1
using System;
public class Program
{
public static void Main()
{
int valor = 1;
switch(valor)
{
case 0:
Console.WriteLine(0);
break;
case 1:
Console.WriteLine(1);
break;
default: Console.WriteLine("Opcao invalida");
}
}
}
Saída
1
A linguagem C# permite também que strings sejam utilizandos nos cases do comando
switch, não limitando-se apenas aos tipos inteiros.
Exemplo 2
using System;
public class Program
{
public static void Main()
{
string str = "cmd";
switch(str)
{
case "cmd":
Console.WriteLine("cmd");
break;
default: //omitido
break;
}
}
}
Saída
cmd
A linguagem C#, assim como C/C++, permite que o switch tenha membros de enumeradores em seus cases.
O tipo de dado enum pode ser visto em C#: Enum.
Exemplo 3
using System;
public class Program
{
enum Enumerador
{
Zero,
Um,
Dois,
Tres
}
public static void Main()
{
Enumerador enm = Enumerador.Zero;
switch(enm)
{
case Enumerador.Zero:
Console.WriteLine(enm);
break;
default://omitido
break;
}
}
}
Saída
Zero
switch e múltiplos cases
Para a execução de um mesmo trecho de código para mais de um case, basta adicionar as
cláusulas case em sequência ou "um abaixo do outra" sendo separadas por (:).
Exemplo 4
int valor = 1;
switch(valor)
{
case 0:
case 1:
Console.WriteLine(1);
break;
//default omitido
}
Saída
1